//给定一个不含重复数字的数组 nums ，返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
var permute = function (nums) {
  let res = [];
  for (let i = 0; i < nums.length; i++) {
    let temp = [];
    if (i == 0) {
      temp.push([nums[i]])
    } else {
      for (let j = 0; j < res.length; j++) {
        temp.push(...insert(res[j], nums[i]))
      }
    }
    res = temp;
  }
  return res;
};
// 在数组中插入数字
var insert = function (nums, num) {
  let res = [];
  for (let i = 0; i <= nums.length; i++) {
    // 深拷贝
    let arr = JSON.parse(JSON.stringify(nums));
    arr.splice(i, 0, num)
    res.push(arr)
  }
  return res;
}
console.log(permute([1, 2, 3]));
console.log(permute([1]));
console.log(permute([0, 1]));